关于>>运算符的重载

来源:百度知道 编辑:UC知道 时间:2024/05/11 03:28:25
Date类有个构造函数:Date (int month, int day, int year, int hour, int minute, int second);
现在有:
stringstream s<< "8/17/1976 1:2:3\n";
Date d;
s >> d;
该如何重载“>>”使得经过上面的“s>>d”后使d初始化为六个参数是“8,17,1976,1,2,3”的对象呢?
先谢谢了啊~~

stringstream& operator >>(stringstream& s,Date& date)
{
int i=0,a[6];
do{
s>>a[i];
if (!s){
s.clear();
s.get();
}else{
cout<<a[i]<<endl;
++i;
}
}while(i<6);
date.month=a[0];date.day=a[1];date.year=a[2];
date.hour=a[3];date.minute=a[4];date.second=a[5];
return s;

}
大概就是这样的,有错你自己改改吧